#pragma once

#include "UI\Controls\Control.h"

#include "UI\Controls\ControlFactory.inl"

namespace ShRp
{
	namespace UI
	{
		typedef std::pair<HWND, Control*> HWNDControlPair;
		typedef std::map <HWND, Control*> HWNDControlMap;
		class ControlMgr
		{
		public:
			static bool Init();
			static void Terminate();

			static void AddControl(Control* _Control);

			static LRESULT CALLBACK HandleHWNDMessage(HWND _HWND, UINT _Message, WPARAM _WParam, LPARAM _LParam);

		private:
			static ControlList m_Controls;
			static HWNDControlMap m_HWNDs;
		};
	};
};